דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא:

Σχετικά έγγραφα
חורף תש''ע פתרון בחינה סופית מועד א'

עץץץץ AVL. עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1, 0, או 1-. הגדרה: במילים אחרות: לכל צומת x בעץ,

תרגיל 13 משפטי רול ולגראנז הערות

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

תרגול פעולות מומצאות 3

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

ל הזכויות שמורות לדפנה וסטרייך

מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

gcd 24,15 = 3 3 =

מבני נתונים עצים שיעור 7

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

סיכום- בעיות מינימוםמקסימום - שאלון 806

עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( )

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה.

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

מבני נתונים ויעילות אלגוריתמים

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

Logic and Set Theory for Comp. Sci.

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

השאלות ידי מצביעים לילדים.

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

שאלה 1 V AB פתרון AB 30 R3 20 R

2 יח"ל ) השלמה ל - 5 יח"ל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת.

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

מתמטיקה בדידה תרגול מס' 13

השאלות..h(k) = k mod m

תרגול מס' 6 פתרון מערכת משוואות ליניארית

מבני נתונים ויעילות אלגוריתמים

סדרות - תרגילים הכנה לבגרות 5 יח"ל

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשס"ו מס' סטודנט:

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון.

תורת הגרפים - סימונים

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

תאריך הבחינה: שם המרצה: רפי כהן שם המתרגל: יסודות מבני נתונים שם הקורס:

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

אלגברה ליניארית (1) - תרגיל 6

מבני נתונים (234218) 1

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא

אלגברה מודרנית פתרון שיעורי בית 6

תרגיל 7 פונקציות טריגונומטריות הערות

x a x n D f (iii) x n a ,Cauchy

TECHNION Israel Institute of Technology, Faculty of Mechanical Engineering מבוא לבקרה (034040) גליון תרגילי בית מס 5 ציור 1: דיאגרמת הבלוקים

חלק א' שאלה 3. a=3, b=2, k=0 3. T ( n) היותר H /m.

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה.

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

s ק"מ קמ"ש מ - A A מ - מ - 5 p vp v=

תורת הקבוצות תרגיל בית 2 פתרונות

מיון. 1 מיון ערימה (Heapsort) חלק I 1.1 הגדרת ערימה 0.1 הגדרה של המושג מיון מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ!

Nir Adar

מיונים א': מיון (Sorting) HeapSort. QuickSort תור עדיפויות / ערימה

Nir Adar גירסה 1.00 עמוד 1

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת

logn) = nlog. log(2n

םינותנ ינבמ (הנכות ידימלתל)

מבני נתונים הגבלת אחריות פרק - 1 אלגוריתמי מיון ואנליזה אסימפטוטית. מיון בועות Sort Bubble מאת : סשה גולדשטיין,

הרצאה תרגילים סמינר תורת המספרים, סמסטר אביב פרופ' יעקב ורשבסקי

{ : Halts on every input}

תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי... 2 II מבני נתונים 20 8 מבני נתונים מופשטים משפט האב גרפים... 37

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

3-9 - a < x < a, a < x < a

תרגול מס' 1 3 בנובמבר 2012

אלגוריתמים 1, סמסטר אביב 2017

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

מתמטיקה בדידה תרגול מס' 5

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט.

תרגילים באמצעות Q. תרגיל 2 CD,BF,AE הם גבהים במשולש .ABC הקטעים. ABC D נמצאת על המעגל בין A ל- C כך ש-. AD BF ABC FME

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה

מודלים חישוביים פתרון תרגיל 5

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t.

אינפי - 1 תרגול בינואר 2012

גבול ורציפות של פונקציה סקלרית שאלות נוספות

מבני נתונים מדעי המחשב שאלון: מועד ב' תשע"ו מדעי המחשב פתרון בחינת הבגרות. Java שאלה 1. blog.csit.org.

תורת המספרים 1 פירוק לגורמים ראשוניים סיכום הגדרות טענות ומשפטים אביב הגדרות 1.2 טענות

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

מבני נתונים מבחן מועד ב' סמסטר חורף תשס"ו

1 סכום ישר של תת מרחבים

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים (

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

"קשר-חם" : לקידום שיפור וריענון החינוך המתמטי

אלגברה ליניארית 1 א' פתרון 2

אלגברה לינארית (1) - פתרון תרגיל 11

סימני התחלקות ב 3, ב 6 וב 9

תרגול משפט הדיברגנץ. D תחום חסום וסגור בעל שפה חלקה למדי D, ותהי F פו' וקטורית :F, R n R n אזי: נוסחת גרין I: הוכחה: F = u v כאשר u פו' סקלרית:

מבני נתונים מבחן מועד א' סמסטר חורף תשס"ו

םיאלמ תונורתפ 20,19,18,17,16 םינחבמל 1 להי רחש ןולאש הקיטמתמב סוקופ


אלגוריתמים בתורת הגרפים חלק שני

טענה חשובה : העתקה לינארית הינה חד חד ערכית האפס ב- הוא הוקטור היחיד שמועתק לוקטור אפס של. נקבל מחד חד הערכיות כי בהכרח.

Trie מאפשר חיפוש, הכנסה, הוצאה, ומציאת מינימום (לקסיקוגרפי) של מחרוזות.

( n) ( ) ( ) שאלה 1: שאלה 2: שאלה 3: (n 5) = Θ. ב. אם f 1, f 2, g 1, g 2. .g 1 *g 2 = Ω(f 1 *f 2 ) , g. ג. ) n.n! = θ(n*2. n) f ( אז ד. אם ה. אם ו.

Transcript:

של שאלות מבחינות פתרונות.1 שאלהזוהופיעהבמבחןמועדג 01 דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא: הגדרות: עבור צומת בעץ בינארי T נסמן ב- T את תת העץ של T ששורשו. (תת העץ הזה כולל את ). נגדיר את תת העץ השמאלי של כתת העץ של T ששורשו,left() דהינו left() T. באופן דומה, נגדיר את תת העץ הימני של כתת העץ של T ששורשו right() דהינו.T right() עבור עץ בינארי T, נגדיר עלה עמוק ימני בעץ T, כעלה הימני ביותר מבין העלים שנמצאים ברמה העמוקה ביותר בעץ T. לדוגמה, העלה העמוק ימני בעץ T שמתואר בציור בעמוד הבא הוא העלה שהמפתח שלו הוא 10. 3 6 1 8 7 5 16 לאחר הקריאה לתוכנית P1(T) עבור העץ T שבציור יתקבל הפלט הבא: 3,, 8,5,7 לדוגמה, הצומת 3 שמופיע בפלט הוא צומת טוב כי הסכום לעלה עמוק ימני בתת העץ הימני שלו שווה ל- 35=8+5+10 והוא גדול יותר מסכום המפתחות של הצמתים בתת העץ השמאלי שלו ששווה ל-.6+++7+13=33 נגדיר את הסכום לעלה עמוק ימני בעץ T, נסמנו ב- sum-deep-leaf(t) כסכום המפתחות של הצמתים שנמצאים במסלול משורש העץ T לעלה העמוק הימני בעץ T. נסמן ב- sum(t) את סכום המפתחות של כל הצמתים בעץ T. נגדיר שצומת שנמצא בעץ בינארי T הוא צומת טוב, אם הסכום לעלה עמוק ימני בתת העץ הימני של, גדול מסכום המפתחות של הצמתים בתת העץ השמאלי של. במילים אחרות איבר הוא טוב אם מתקיים : sum-deep-leaf(t right() ) > sum(t left() ) 1 13 10 כתוב/כתבי פסאודו-קוד לפונקציה בשם P1, יעילה ככל האפשר, אשר מקבלת כפרמטר עץ בינארי T ומדפיסה (לפי סדר כלשהו) את מפתחות כל האיברים הטובים בעץ T. נתח/י את סיבוכיות זמן הריצה של הפונקציה שכתבת כתלות במס' האיברים בעץ (n). הנחות ודרישות: אין להשתמש במבני עזר נוספים. מותר להשתמש במשתנים (כמו למשל.(,y,z מס' המשתנים האלו הוא קבוע שאינו תלוי ב- n. 1

P1(T). שאלה זומבוססת על שאלה שהופיעה במבחן מועד ב 01 =root(t) if ( == NULL) { y.sum=0 y.sum-deep-leaf=0 y.h=0 return y y1=p1(t left() ) y=p1(t right() ) y.sum=y1.sum+y.sum+key() y.h=ma{y1.h,y.h+1 if (y1.h > y.h) { y.sum-deep-leaf=y1.sum-deep-leaf+key() else y.sum-deep-leaf=y.sum-deep-leaf+key() if (y.sum-deep-leaf > y1.sum) { print key() return y להלן ניתוח הסיבוכיות שהוא בדיוק כפי שמוצג באתר הקורס (בתוספת לחוברת שנקראת.(ore eamples on trees נסמן ב- T(n) את זמן הריצה של התוכנית כתלות במספר הצמתים בעץ n. מספר הקריאות הרקורסיביות T(n) C 1 + C C 1 + C n= θ(n) ולכן T(n)=O(n) מצד שני, ולכן T(n)=Ω(n) ולסיכום T(n)=θ(n) T(n) הקריאות הרקורסיביות מספר n= θ(n) במערכת המחשוב של משרד החינוך שומרים נתונים על מורים, בתי ספר ומקצועות הלימוד. עבור כל מורה שומרים: מספר תעודת זהות ופרטים על המקצועות אותם הוא מלמד ועל בתי הספר בהם הוא מלמד. עבור כל בית ספר שומרים: שם בית הספר (בהנחה ששם זה מזהה את בית הספר באופן יחיד) ופרטים על המורים שמלמדים בבית הספר והמקצועות הנלמדים בבית הספר. עבור כל מקצוע שומרים: מספר מקצוע ופרטים על המורים שמלמדים מקצוע זה ועל בתי הספר בהם נלמד מקצוע זה. הערה: האופן בו נשמרים הנתונים הנ"ל אינו מפורט, ויהיה עליך לציין אותו כחלק מפתרון השאלה. הצע/הציעי מבנה נתונים עבור המערכת הנ"ל ששומר את הנתונים הנ"ל ותומך בפעולות הבאות: בהינתן מספר תעודת זהות של מורה, מספר מקצוע ושם בית ספר הוספת/מחיקת הנתון שהמורה מלמד את המקצוע בבית הספר בזמן O(m logr+logp) בממוצע, כאשר m מציין את מספר בתי הספר בהם המורה מלמד את המקצוע, p מציין את מספר המקצועות שהמורה מלמד, ו- r מציין את מספר המורים שמלמדים את המקצוע. בהינתן מספר תעודת זהות של מורה, הדפסת רשימת כל המקצועות אותם מלמד המורה כאשר עבור כל מקצוע בנוסף למספר המקצוע מודפס מספר שמציין את מספר בתי הספר שבהם מלמד המורה את המקצוע. על רשימת המקצועות להיות ממוינת לפי מספר בתי הספר בהם מלמד המורה את המקצוע בסדר עולה. על פעולה זו להתבצע בזמן O(p) בממוצע כאשרp מציין את מספר המקצועות אותם מלמד המורה. לדוגמה אם המורה מלמד מקצוע A ב- 3 בתי ספר, מקצוע B ב- 5 בתי ספר ומקצוע C ב- בתי ספר, אזי הפלט יהיה (לפי הסדר משמאל לימין): C,A 3,B 5 בהינתן מספר מקצוע ומספר בית ספר, הדפסת כל המורים שמלמדים מקצוע זה בבית ספר זה, כאשר המורים ממוינים לפי מספר בתי הספר בהם הם מלמדים מקצוע זה בסדר עולה. על פעולה זו להתבצע בזמן O(q) בממוצע כאשר q מציין את מספר המורים שיודפסו. לדוגמה, נניח שמורה X מלמד את המקצוע הנתון בבית הספר הנתון ובעוד 3 בתי ספר, ומורה Y מלמד את המקצוע הנתון בבית הספר הנתון ובעוד 6 בתי ספר, ומורה Z מלמד את המקצוע הנתון בבית הספר הנתון ובעוד בתי ספר, אזי הפלט יהיה (לפי הסדר משמאל לימין):. Z,X,Y תאר/י באופן מילולי איך מתבצעות כל הפעולות הנ"ל. 3

טבלתhash מורים מפתח: מספר ת.זשלמורה המוצע: טבלת Hash של מורים, מפתח: מס' תעודת זהות של מורה. כל המבנה איבר בטבלה מכיל מצביע לעץ -3 ראשון של מקצועות שאותם מלמד המורה ומצביע לעץ -3 שני של מספרים. כל איבר בעץ -3 הראשון מיצג מקצוע והמספר המתאים לו בעץ -3 השני שווה למספר בתי הספר שבהם המורה מלמד את המקצוע. לכל איבר בעץ -3 הראשון יש מצביע למספר המתאים לו בעץ השני ולהיפך. בין העלים בעץ -3 השני ישנה רשימה מקושרת. מהאיבר ב- Hash יש מצביע לעלה השמאלי ביותר בעץ השני. טבלת Hash מקצוע-בית ספר, מפתח: צרוף של מספר מקצוע ושם בית ספר. כל איבר בטבלה מכיל מצביע לעץ -3 ראשון של מיצגים של מורים, ומצביע לעץ -3 שני של מספרים. כל איבר בעץ -3 הראשון מיצג מורה שמלמד את המקצוע בבית הספר והמספר המתאים לו בעץ -3 השני שווה למספר בתי הספר שבהם המורה מלמד את המקצוע. לכל איבר בעץ -3 הראשון יש מצביע למספר המתאים לו בעץ השני ולהיפך. בין העלים בעץ -3 השני ישנה רשימה מקושרת. מהאיבר ב- Hash יש מצביע לעלה השמאלי ביותר בעץ השני. טבלת Hash מורה-מקצוע, מפתח: צרוף של מספר תעודת זהות של מורה ומספר מקצוע. כל איבר בטבלה מכיל מצביע לרשימה מקושרת לא ממוינת של בתי ספר שמכילה את כל בתי הספר שבהם מלמד המורה את המקצוע. עץ -3 שני מפתח: מספר בתי ספרשבהםהמורה מלמדאתהמקצוע עץ -3 ראשון מפתח: מספרמקצוע בית A מקצוע B א מקצוע ספר 1 מקצוע C עץ -3 שני מפתח: מספר בתי ספרשבהםהמורה מלמדאתהמקצוע עץ -3 ראשון מפתח: ת.זמורה טבלתhash מקצוע-ביתספר מפתח: מספרמקצוע- שםביתספר מורה W מורה Z מורה X מורה Y התרשים הבא מתאר את מבנה הנתונים המוצע בהנחה שבמבנה הנתונים ישנם 3 בתי ספר א-ג, מורים W-Z וחמישה מקצועות A-E והנתונים על המקצועות אותם מלמדים המורים הם כפי שמתואר להלן: מורה W מלמד מקצועות A,C,E בבית ספר א ומקצועות A,E בבית ספר ב מורה X מלמד מקצועות A,D בבית ספר א ומקצועות B,D,E בבית ספר ג מורה Y מלמד מקצועות B,C,D בבית ספר ג ומקצועות A,C,E בבית ספר ב מורה Z מלמד מקצועות,D,E בבית ספר א, מקצועות C,D בבית ספר ב ומקצוע D בבית ספר ג על מנת לפשט את התרשים בטבלת המורים הוצגו רק העצים (ראשון ושני) שמורה W מצביע עליהם. בטבלה של מקצוע-בית ספר הוצגו רק הצרופים של המקצועות A-C ובתי הספר שבהם מלמדים מקצועות אלו. בטבלה זו הוצגו רק העצים (ראשון ושני) שהאיבר שמתאים למקצוע C ובית ספר ב מצביע עליהם. בטבלה של מורה-מקצוע הוצגו רק הצרופים של המורים X,W והמקצועות אותם מלמדים מורים אלו. בטבלה זו הוצגה רק הרשימה המקושרת שמצביע עליה האיבר שמתאים למורה W ומקצוע A. טבלתhash מורה-מקצוע מפתח: ת.ז מורה- מספרמקצוע מקצוע C בית ספר ב מקצוע A בית ספר ב מקצוע C בית ספר א מקצוע A בית ספר א מקצוע C בית ספר ג מקצוע B בית ספר ג 1 מורה Z מורה Y בית ספר ב רשימה מקושרת של בתי הספר שבהם המורה מלמד את המקצוע מפתח: שם בית ספר בית ספר א 5 מורה X מקצוע B מורה X מקצוע A מורה W מקצוע E מורה W מקצוע A מורה W מקצוע C 6 מורה X מקצוע E מורה X מקצוע D

בהינתן מספר תעודת זהות של מורה, מספר מקצוע ושם בית ספר פעולת הוספת הנתון שהמורה מלמד את המקצוע בבית הספר מתבצעת באופן הבא: מחפשים את המורה בטבלת המורים ((1)O בממוצע) ממנו מגיעים לעץ -3 הראשון ומחפשים את האיבר המתאים למקצוע (O(logp)) ממנו מגיעים לאיבר המתאים לו בעץ -3 השני, מוציאים אותו מהעץ -3 השני ומוספים במקומו איבר שגדול ממנו ב-.(O(logp)) 1 לאחר מכן מחפשים את האיבר המתאים למורה ולמקצוע בטבלת המורה- מקצוע ((1)O בממוצע). עוברים על כל האיברים ברשימה המקושרת עליה האיבר מצביע, לכל בית ספר שברשימה מחפשים את האיבר המתאים למקצוע- בית ספר בטבלה מקצוע-בית ספר ((1)O בממוצע). ממנו מגיעים לעץ -3 הראשון עליו הוא מצביע ומחפשים בו את המורה.(O(logr)) מהמורה מגיעים לאיבר המתאים לו בעץ -3 השני מוציאים אותו מהעץ ומוסיפים במקומו איבר הגדול ממנו ב-.(O(logr)) 1 מאחר והפעולה מתבצעת על m בתי ספר סך הכול זמן הפעולה הוא O(mlogr) בממוצע. לאחר שמסיימים לעבור על כל בתי הספר שברשימה המקושרת כפי שתואר לעיל, מוסיפים לתחילת הרשימה המקושרת את בית הספר ((1)O), מחפשים את האיבר המתאים למקצוע-בית ספר בטבלה מקצוע-בית ספר ((1)O בממוצע) ממנו מגיעים לעץ -3 הראשון עליו הוא מצביע ומוסיפים לו את המורה. ממנו מגיעים לעץ -3 השני ומוסיפים איבר שמכיל את המספר m שמתאים למספר בתי הספר שבהם מלמד המורה את המקצוע.(O(logr)) מקרי הקצה שבהם לא קיים איבר שמתאים למורה ולמקצוע בטבלת מורה-מקצוע ושלא קיים איבר שמתאים למקצוע ולבית הספר בטבלת מקצוע-בית ספר לא פורטו. לפיכך, סך הכול סיבוכיות הזמן של הפעולה היא.O(mlogr+logp) בהינתן מספר תעודת זהות של מורה, מספר מקצוע ושם בית ספר פעולת מחיקת הנתון שהמורה מלמד את המקצוע בבית הספר מתבצעת באופן דומה לפעולת ההוספה בהבדל שבמקום להוסיף 1 לאיבר המתאים בעץ -3 השני מחסירים 1, במקום להוסיף מורה לעץ -3 הראשון המתאים למקצוע ולבית הספר מוציאים את המורה ובמקום להוסיף בית ספר לרשימה המקושרת המתאימה למקצוע ולמורה מוציאים את בית ספר מהרשימה המקושרת. בהינתן מספר תעודת זהות של מורה, הדפסת רשימת כל המקצועות אותם מלמד המורה מתבצעת באופן הבא: מחפשים את המורה בטבלת המורים ((1)O בממוצע), ממנו מגיעים לעלה השמאלי ביותר בעץ -3 השני. עוברים על העלים בעץ -3 השני משמאל לימין ולכל עלה מדפיסים את ערכו ואת המקצוע המתאים לו בעץ הראשון O(p)) בממוצע). בהינתן מספר מקצוע ומספר בית ספר, הדפסת כל המורים שמלמדים מקצוע זה בבית ספר זה מתבצעת באופן הבא: מחפשים את האיבר המתאים למקצוע ולבית הספר בטבלת מקצוע-בית ספר ((1)O בממוצע). ממנו מגיעים לעלה השמאלי ביותר בעץ -3 השני. עוברים על העלים בעץ -3 השני משמאל לימין ולכל עלה מדפיסים את המורה שמתאים לו בעץ הראשון.(O(q)) לכן, סך הכול סיבוכיות הזמן של הפעולה היא O(q) בממוצע..3 שאלה זו הופיעה במבחן מועד ג 01 נתח את סיבוכיות זמן הריצה (במונחים של ( θ של קטע הקוד הבא כתלות ב- n. נמק את תשובתך. = 0 for (i=1; i n; i++) { for (j=i; j n; j++) { ++ z=1 y=0 while (z ) { z=z* y++ בשאלות מהסוג הזה, מאחר ובהמשך יש לולאת while שתלויה ב- וזמן הריצה שלה הוא חשוב להעריך במדויק את הערך של בחלק הראשון, כי אם יוצא n או 3n התשובה בהמשך תהיה שונה כי n 3n ( ) ( ) נסמן ב- w את מספר הפעמים שנכנסים ללולאת ה-.while נחשב תחילה את w כתלות ב-. נסמן ב- z k את הערך של המשתנה z לאחר k כניסות ללולאה בסוף הלולאה. נקבל ש- k zk = מאחר ו- נקבל: ולכן θ θ z w > w > w> 7 8

z w 1 שאלהזומבוססתעלשאלהשהופיעהבמבחןמועדב 01 מצד שני:. ולכן ולכן בסך הכול נקבל ש- נחשב את הערך של שמתקבל מהחלק הראשון של קטע הקוד. בכל כניסה ללולאה הפנימית הערך של גדל ב- 1. ולכן הערך של בסיום קטע הקוד הראשון שווה למספר הכניסות ללולאה הפנימית. עבור 1=i נכנסים n פעמים ללולאה הפנימית עבור =i נכנסים 1-n פעמים ללולאה הפנימית עבור 3=i נכנסים -n פעמים ללולאה הפנימית... עבור i=n נכנסים פעם אחת ללולאה הפנימית עבור n<i n לא נכנסים ללולאה הפנימית ולכן הערך של ולכן: w= +1 w 1 w 1 w +1 לאחר ביצוע קטע הקוד הראשון שווה ל- n+ ( n 1) + ( n ) + L+ 1= + 3+ Ln= (1/ ) n ( n+ 1) T ( n) = C + C 1 n+ C 3 (1/ ) n ( n+ 1) + C (1/ ) n ( n+ 1) + 1 = θ ( (1/ ) n ( n+ 1) ) הוכח שלכל מספר שלם חיובי (וגדול מ- 1) n כך ש- 1-n מתחלק ב- (ללא שארית), קיים עץ בינארי שמקים את התנאים הבאים: 1) מספר הצמתים בעץ הוא בדיוק n. ) גובה העץ קטן מ- 3) מספר העלים בעץ גדול או שווה ) קיימים בעץ לפחות צמתים שיש להם בן אחד בדיוק והגובה שלהם גדול מ- n log n 1 8 n n 1 לכל n כך ש- 1-n מתחלק ב- (ללא שארית), נבנה את העץ הבא ונראה שהוא עומד בכל הדרישות: מסלולשמכיל +1/(1-n) צמתים עץכמעטשלםשמכיל /(1-n) צמתים N O בהמשך נסמן את הצומת הזה כצומת מסלולשמכיל +1/(1-n) צמתים עץכמעטשלםשמכיל (n-1)/ - צמתים פעולות בלולאת ה- while פעולות בלולאה הפנימית פעולות בלולאה החיצונית פעולות מחוץ ללולאות 9 10

+ / n 1) ( = מספרהצמתיםבעץ ( n 1) / + ( n 1) / + כדי לראות שאי השוויון האחרון נכון עבור 13 n נציב 13=n ונראה שאי השוויון מתקיים, ומאחר והפונקציה שבצד ימין של אי השוויון עולה יותר מהר מהפונקציה בצד שמאל, נקבל שגם עבור 13<n אי השוויון מתקיים. ולכן הראנו שגובה העץ קטן מ- /n. מספרהעליםבעץהכמעט שלםהעליוןפחות 1 (כי לצומת ישבנים) = מספר העלים בעץ מספר הצמתים במסלול שמתחיל בבן השמאלי של צומת מספרהצמתים במסלול שמתחילבבןהימנישל צומת מספרהצמתים בעץהכמעט שלםהעליון + + מספר העלים בעץ הכמעט שלם התחתון + ( n 1) / + 1= n כי לכל אחד משני המסלולים יש עלה אחד על סמך טענה 8 מספרהצמתיםבעץהכמעט שלםהתחתוןועוד 1 (עבור האבאשלשורשהעץ) = ( n 1) / + 1 ( n 1) / + 1 + = ( n 1) + ( n 1) n 1 n 1 + + 1= + 1 16 16 8 8 ולכן הראנו שמספר העלים בעץ גדול או שווה ל- 8/(1-n). ולכן הראנו שמספר הצמתים בעץ שבנינו הוא n. גובה העץ הכמעט שלם העליון שהוא עץ כמעט שלם שמכיל /(1-n) צמתים + / (n 1) = גובההעץ מספרהצמתיםבמסלול שמתחילבבןהימנישל צומת ( n 1) / + log( n 1) / ) < n / log ( ( n 1) / ) = log( n / + 3/ ) log n / על סמך טענה 6 ולכן הרמה של כל הצמתים שנמצאים מתחת לעץ הכמעט שלם העליון גדולה מ- log n / נחשב את מספר הצמתים שנמצאים מתחת לעץ הכמעט שלם העליון שיש להם בן אחד בדיוק ונראה שהוא גדול או שווה ל - /(1-n). גובה העץ הכמעט שלם העליון על סמך טענה 6 עבור 13 n 11 1

5. שאלה זו הופיעה במבחן מועד ג 013 א חלק שאלה זו מתייחסת להוספה של איברים בעץ AVL לפי האלגוריתמים שנלמדו בכיתה. האם קיים עץ T AVL שמקים את שני התנאים הבאים: כי לאבא של השורש של העץ הכמעט שלם התחתון יש בן אחד בדיוק 1) גובה העץ הוא בדיוק 5. ) לא קיימים שלושה צמתים כך שאם נוסיף אותם לעץ המקורי T אחד אחרי השני גובה העץ יגדל ב- 1. ( n 1) / 1 + ( n 1) / + 1 = ( n 1) / אם תשובתך היא כן צייר עץ כזה. אם תשובתך היא לא, נמק מדוע לא קיים עץ כזה. ב חלק שאלה זו מתייחסת להוספה של איברים מעץ B לפי החומר ללימוד עצמי שנמצא באתר הקורס. כילכלאחדמהצמתים במסלולשמתחילמהבן הימנישלצומת ישבן אחדבדיוקפרטלעלה כילכלאחדמהצמתים במסלולשמתחילמהבן השמאלישלצומת יש בןאחדבדיוקפרטלעלה ולבןהשמאלישלצומת מספרהצמתיםשנמצאים מתחתלעץ הכמעטשלם העליוןשישלהםבןאחד בדיוק ולכן הראנו שקיימים בעץ לפחות /(1-n) צמתים שיש להם בן אחד בדיוק והרמה שלהם גדולה מ- log n / יהי T עץ B (שבו 3=t) שמקיים את התנאים הבאים: 1) גובה העץ הוא בדיוק. ) לכל צומת בעץ שאינו עלה יש בדיוק בנים. במילים אחרות, לכל צמתי הדמה בעץ יש בדיוק בנים. (לפיכך, לעץ יש בדיוק 6 עלים). מהו המספר הקטן ביותר של איברים שיש להוסיף לעץ (אחד אחרי השני) כדי שגובה העץ יגדל ב- 1. נמק את תשובתך על ידי ציור העץ T וציון הצמתים שצריך להוסיף לעץ כדי שגובהו יגדל ב- 1. לסיכום, הראנו שהעץ שבנינו מקיים את כל דרישות השאלה. 13 1

א חלק פתרון העץ הבא מקיים את כל התנאים שבשאלה: 5 ב חלק פתרון העץ שתואר בשאלה נראה כך: 3 8 7 10 1 6 9 11 1-5 - 8 9-1 13-16 17-0 1-5-8 9-3 33-36 37-0 1-5-8 9-5 53-56 57-60 61-6 1 כדי להגדיל את גובה העץ ב- 1 במינימום הוספות נוסיף תמיד לתתי עצים עם מספר גדול ביותר של עלים. כדי שהגובה יגדל ב- 1 צריך להגיע למצב שבו לשורש יש 6 בנים. לצורך כך צריך ליצור פיצול בשני בנים של השורש. נסתכל על תת העץ ששורשו הבן השמאלי של השורש. תת עץ זה נראה כך: כפתרון של השאלה הציור של העץ הנ"ל מספיק. כדי להוכיח שאי אפשר להגדיל גובה את העץ ב- 1 על ידי הוספת 3 צמתים אפשר להשתמש בהוכחה שמתוארת להלן. בהרצאה הראנו: מספרהצמתיםבעץ AVL קטןביותר בגובהh = מספרהצמתיםבעץ AVL קטןביותר בגובהh- 1 + מספרהצמתיםבעץ AVL קטןביותר + בגובהh-1 1-5 - 8 9-1 13-16 נפצל את הבן השמאלי של השורש של תת העץ הנ"ל על ידי הוספת 3 צמתים: 0.1-0.3 ונקבל את תת העץ הבא: 1-5 - 8 9-1 13-16 נפעיל את הנוסחה הנ"ל ונקבל: מספר הצמתים בעץ AVL קטן ביותר בגובה 1 שווה ל- 1 מספר הצמתים בעץ AVL קטן ביותר בגובה שווה ל- מספר הצמתים בעץ AVL קטן ביותר בגובה 3 שווה ל- מספר הצמתים בעץ AVL קטן ביותר בגובה שווה ל- 7 מספר הצמתים בעץ AVL קטן ביותר בגובה 5 שווה ל- 1 מספר הצמתים בעץ AVL קטן ביותר בגובה 6 שווה ל- 0 בעץ שבציור יש 1 צמתים. כדי להגיע ממנו לעץ AVL בגובה 6 צריך להוסיף לו לפחות 8 צמתים (כי העץ הקטן ביותר בגובה 6 מכיל 0 צמתים). לפיכך בהוספת 3 צמתים לעץ שבציור אי אפשר להגיע לעץ AVL בגובה 6. 0.1-0.3 15 16

נפצל את הבן הימני של השורש של תת העץ הנ"ל על ידי הוספת 3 צמתים: 16.1-16.3 ונקבל את תת העץ הבא: 0.1-0.3 1-5 - 8 9-1 13-16 16.1-16.3 נפצל את הבן השני של השורש של תת העץ הנ"ל על ידי הוספת 3 צמתים:.1-.3 ונקבל את תת העץ הבא: 0.3-0.6 1 -.1-.3 5-8 9-1 13-16 16.1-16.3 לסיכום, לאחר הוספת 9 הצמתים 0.1-0.3,16.1-16.3,.1-.3 קיבלנו שהבן השמאלי של השורש (בעץ המקורי) התפצל לשני צמתים ולשורש יש עכשיו 5 בנים. נחזור על התהליך ונוסיף 9 צמתים נוספים לתת העץ ששורשו הבן הימני של השורש. ונקבל שהבן הימני של השורש יתפצל לשני צמתים ולשורש יש עכשיו 6 בנים. כדי שגובה העץ יגדל ב- 1 אנחנו צריכים שעוד בן של השורש יתפצל ל- צמתים. ולכן על ידי הוספת 9 צמתים נוספים לבן משמאל לבן הימני של השורש נקבל שלשורש יהיו 7 בנים ולכן הוא יתפצל וגובה העץ יגדל ב- 1. לסיכום, המספר המינימאלי של צמתים שצריך להוסיף לעץ המקורי כדי שגובהו יגדל ב- 1 שווה ל- 7. 17